#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    setWindowTitle(tr("StackedWidget"));    //设置窗体的名字

    list = new QListWidget(this);   //创建一个列表框
    //往这个列表框里面添加元素
    list->insertItem(0, tr("NO.1"));
    list->insertItem(1, tr("NO.2"));
    list->insertItem(2, tr("NO.3"));

    // 创建3个label，模拟stackedwidget需要显示的3层窗体
    label1 = new QLabel(tr("测试1"));
    label2 = new QLabel(tr("测试2"));
    label3 = new QLabel(tr("测试3"));

    stackedWidget = new QStackedWidget(this); //为这个主窗体创建一个堆栈窗体
    stackedWidget->addWidget(label1); //添加一个文本进入窗体
    stackedWidget->addWidget(label2); //添加第二个
    stackedWidget->addWidget(label3); //添加第三个

    QHBoxLayout *mainLayout = new QHBoxLayout(this);  //设置一个布局
    mainLayout->setMargin(5); //设置这个对话框的边距
    mainLayout->setSpacing(5);  //设置各个控件之间的边距
    mainLayout->addWidget(list);  //把list里面的内容加到窗体里面
    mainLayout->addWidget(stackedWidget, 0, Qt::AlignHCenter);
    mainLayout->setStretchFactor(list, 1);  //设定为可伸缩的控件，第一个参数是用于指定设置的控件，第二个大于0表示这个控件可伸缩
    mainLayout->setStretchFactor(stackedWidget, 3);
    connect(list, SIGNAL(currentRowChanged(int)), stackedWidget, SLOT(setCurrentIndex(int)));
}

Dialog::~Dialog()
{

}
